import allure
from selenium.webdriver.common.by import By
from base.base_driver import BaseDriver
from utils.log_utils import logger


class ContactPage(BaseDriver):
    _CLICK_BTN = By.CSS_SELECTOR, ".ww_operationBar .js_add_member"
    _WAIT_ELEMENT = By.ID, "username"
    _TOAST_TEXT = By.CSS_SELECTOR, ".ww_tip.success"
    _NAME_LIST = By.XPATH, "//*[@data-type='member']/td[2]"

    def goto_add_person_page(self):
        # 避免循环导入报错 在类内导入
        from pages.add_person_page import AddPersonPage
        # logger.info('点击进入添加成员页面')
        with allure.step('点击进入添加成员页面'):
        # 多次点击，直到进入添加成员页面
            logger.info('多次点击，直到进入添加成员页面')
            self.loop_click(self._CLICK_BTN, self._WAIT_ELEMENT)  #
        # 进入添加成员界面
        with allure.step('进入添加成员界面'):
            return AddPersonPage(self.driver)

    def get_toast(self):
        # logger.info('获取toast文本')
        with allure.step('获取toast文本'):
            # 定位并获取文本内容
            text = self.get_ele_test(*self._TOAST_TEXT)
        # 返回文本内容
        return text

    def get_namelist(self):
        # logger.info('获取姓名列表')
        with allure.step('获取姓名列表'):
            name_lists = self.driver.find_elements(*self._NAME_LIST)
        # 返回姓名列表
        return name_lists
